<?php namespace Home\Controller;

use Hdphp\Controller\Controller;
/**
 * 购物车管理器
 */
class CartController extends Controller
{
	/**
	 * 购物车首页
	 */
	public function index()
	{
		//获取存入session里的商品信息数据
		//p($_SESSION);
		if(isset($_SESSION['cart'])){
			$data = $_SESSION['cart']['goods'];
		}else{
			$data = array();
		}				
		//p($data);
		//分配变量到购物车页面
		View::with("data",$data);
		//载入页面
		View::make('cart');
	}
	/**
	 * 加入购物车 
	 * 添加购物车使用 cart::add() 方法实现，购物车中的数据会写入到 $_SESSION 超全局数组中
	 */
	public function ajaxCart()
	{
		if(IS_AJAX)
		{
			//p($_POST['id']);die;
			//接受post提交来的id
			$id = $_POST['id'];//此id就是对应传来的商品gid
			//通过$id查商品表数据
			$goodsData = Db::table('goods')->where('gid','=',$id)->first();
			//p($goodsData);
			//接受post提交来的规格（颜色和尺码）
			$spec = $_POST['spec'];
			//去掉最右侧的竖线
			$spec = rtrim($spec,"|");
			//转化成数组
			$spec = explode('|', $spec);
//			p($spec);
			
			$data = array(
			    'id'        => $_POST['id'], // 商品 ID 
			    'name'      =>$goodsData['gname'],// 商品名称 
			    'num'       => $_POST['num'], // 商品数量 
			    'price'     => $goodsData['shopprice'], // 商品价格 
			    'options' => array(// 其他参数如价格、颜色、可以为数组或字符串 
				    'color'     => $spec[0], 
				    'size'  => $spec[1] ,
				    'pic' =>$goodsData['pic'],
				    'marketprice'=>$goodsData['marketprice'],
			    ),
			); 
		}
		//p($data);//看数据到F12网络看
		//执行下面的方法，自动将数据存到session里了，上面的index方法可以直接调用
		
		Cart::add($data);//添加到购物车
		//p($_SESSION);
	}
	/**
	 * 购物车数量更改变化，购物车相关信息更新
	 * 更新购物车需要传入商品的唯一 SID，同时传入更新的商品数量，
	 */
	public function ajaxUpdateCart()
	{
		if(IS_AJAX)
		{
			//p($_POST);die;
			$data = array(
				'sid'=>$_POST['id'],// 唯一 sid，添加购物车时自动生成				
				'num'=>$_POST['c'],
			);
			//p($data);die;
			//执行更新
			Cart::update($data);
			//获得商品总价和商品总数量
			//p($_SESSION);
			echo json_encode($_SESSION['cart']);die;
			//echo $_SESSION['cart']['total'];die;
			//echo $_SESSION['cart']['total_rows'];
		}
	}
	/**
	 * 删除某条商品
	 */
	public function ajaxDel()
	{
		if(IS_AJAX)
		{

//			p($_POST);die;
			//获取sid
			$sid = $_POST['id'];
			//执行删除
			Cart::del($sid);
			//返出1表示删除成功
			echo 1;die;
		}
	}
	/**
	 * 删除多条商品
	 */
	 public function ajaxAllDel()
	 {
	 	if(IS_AJAX)
		{
			//p($_POST);die;
			//获得ajax  post提交传来的id
			$sid = $_POST['id'];
			//去除最右边的  竖线
			$sid = rtrim($sid,"|");
			//转化成数组
			$sid = explode("|", $sid);
			//p($sid);die;
			//循环删除$sid里面的逐条数据
			foreach ($sid as $k => $v) {
				//执行删除
				Cart::del($v);
			}
			//返回删除成功后的结果  1
			echo 1;die;
		}
	 }
	
}
